/*
 * SDS (Simple Dynamic String, 简单动态字符串)
 */
#ifndef __SDS_H
#define __SDS_H

/*
 * 类型别称，用于执行指向 sdshdr 的 buf 属性
 */
typedef char *sds;

/*
 * 保存字符串对象的结构
 */
struct sdshdr {

  // buf 中已占用空间的长度
  int len;

  // buf 中剩余可用空间的长度
  int free;

  // 字节数组，用于保存字符串
  char buf[];
};

/*
 * 返回 sds 的实际保存的字符串的长度
 *
 * T = O(1)
 */
static inline size_t sdslen(const sds s) {

}

sds sdsnewlen(const void *init, size_t initlen) {

}

sds sdscat(sds s, const char *t);

#endif
